// Copyright 2019 Google
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: developers/mobile/abt/proto/experiment_payload.proto

// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif

#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
 #import <Protobuf/GPBProtocolBuffers.h>
#else
 #import "GPBProtocolBuffers.h"
#endif

#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
#endif

// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

CF_EXTERN_C_BEGIN

@class ABTExperimentLite;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum ABTExperimentPayload_ExperimentOverflowPolicy

typedef GPB_ENUM(ABTExperimentPayload_ExperimentOverflowPolicy) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  ABTExperimentPayload_ExperimentOverflowPolicy_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  ABTExperimentPayload_ExperimentOverflowPolicy_PolicyUnspecified = 0,
  ABTExperimentPayload_ExperimentOverflowPolicy_DiscardOldest = 1,
  ABTExperimentPayload_ExperimentOverflowPolicy_IgnoreNewest = 2,
};

GPBEnumDescriptor *ABTExperimentPayload_ExperimentOverflowPolicy_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL ABTExperimentPayload_ExperimentOverflowPolicy_IsValidValue(int32_t value);

#pragma mark - ABTExperimentPayloadRoot

/**
 * Exposes the extension registry for this file.
 *
 * The base class provides:
 * @code
 *   + (GPBExtensionRegistry *)extensionRegistry;
 * @endcode
 * which is a @c GPBExtensionRegistry that includes all the extensions defined by
 * this file and all files that it depends on.
 **/
@interface ABTExperimentPayloadRoot : GPBRootObject
@end

#pragma mark - ABTExperimentLite

typedef GPB_ENUM(ABTExperimentLite_FieldNumber) {
  ABTExperimentLite_FieldNumber_ExperimentId = 1,
};

@interface ABTExperimentLite : GPBMessage


@property(nonatomic, readwrite, copy, null_resettable) NSString *experimentId;

@end

#pragma mark - ABTExperimentPayload

typedef GPB_ENUM(ABTExperimentPayload_FieldNumber) {
  ABTExperimentPayload_FieldNumber_ExperimentId = 1,
  ABTExperimentPayload_FieldNumber_VariantId = 2,
  ABTExperimentPayload_FieldNumber_ExperimentStartTimeMillis = 3,
  ABTExperimentPayload_FieldNumber_TriggerEvent = 4,
  ABTExperimentPayload_FieldNumber_TriggerTimeoutMillis = 5,
  ABTExperimentPayload_FieldNumber_TimeToLiveMillis = 6,
  ABTExperimentPayload_FieldNumber_SetEventToLog = 7,
  ABTExperimentPayload_FieldNumber_ActivateEventToLog = 8,
  ABTExperimentPayload_FieldNumber_ClearEventToLog = 9,
  ABTExperimentPayload_FieldNumber_TimeoutEventToLog = 10,
  ABTExperimentPayload_FieldNumber_TtlExpiryEventToLog = 11,
  ABTExperimentPayload_FieldNumber_OverflowPolicy = 12,
  ABTExperimentPayload_FieldNumber_OngoingExperimentsArray = 13,
};

@interface ABTExperimentPayload : GPBMessage


@property(nonatomic, readwrite, copy, null_resettable) NSString *experimentId;


@property(nonatomic, readwrite, copy, null_resettable) NSString *variantId;


@property(nonatomic, readwrite) int64_t experimentStartTimeMillis;


@property(nonatomic, readwrite, copy, null_resettable) NSString *triggerEvent;


@property(nonatomic, readwrite) int64_t triggerTimeoutMillis;


@property(nonatomic, readwrite) int64_t timeToLiveMillis;


@property(nonatomic, readwrite, copy, null_resettable) NSString *setEventToLog;


@property(nonatomic, readwrite, copy, null_resettable) NSString *activateEventToLog;


@property(nonatomic, readwrite, copy, null_resettable) NSString *clearEventToLog;


@property(nonatomic, readwrite, copy, null_resettable) NSString *timeoutEventToLog;


@property(nonatomic, readwrite, copy, null_resettable) NSString *ttlExpiryEventToLog;


@property(nonatomic, readwrite) ABTExperimentPayload_ExperimentOverflowPolicy overflowPolicy;


@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<ABTExperimentLite*> *ongoingExperimentsArray;
/** The number of items in @c ongoingExperimentsArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger ongoingExperimentsArray_Count;

@end

/**
 * Fetches the raw value of a @c ABTExperimentPayload's @c overflowPolicy property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t ABTExperimentPayload_OverflowPolicy_RawValue(ABTExperimentPayload *message);
/**
 * Sets the raw value of an @c ABTExperimentPayload's @c overflowPolicy property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetABTExperimentPayload_OverflowPolicy_RawValue(ABTExperimentPayload *message, int32_t value);

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)
